package com.xyy.saas.payment.constants;

import java.math.BigDecimal;

/**
 * @author wangtianqi
 */
public final class Constants {

    private Constants() {
    }

    /** 是否解析京东账单 **/
    public static final String APOLLO_KEY_ANALY_JDBILL =  "jd.pay.analy.bill";

    public static final String APOLLO_KEY_PAY_MODES =  "pay_mode_list";

    public static final String APOLLO_KEY_BUSINESS_ORDER_TYPES =  "business_order_type_list";

    public static final String APOLLO_KEY_ACCOUNT_WHITE_LIST =  "account_white_list";

    public static final String ORDER_TYPE_PAY = "收款";

    public static final String ORDER_TYPE_REFUND = "退款";

    public static final String PAY = "pay";

    public static final String REFUND = "refund";

    public static final int REDIS_USER_TOKEN_EXPIRE = 60 * 60 * 2;

    public static final int DEFAULT_PAGE_SIZE = 200;

    public static final long DATE_FIX = 3600000 * 24;

    public static final int SELECT_COUNT_LIMIT = 5;

    public static final int DATE_SELECT_MAX = 31;

    public static final int DATA_MAX = 100000;

    public static final int QUERY_FUMIN_DATA_PAGE_SIZE = 20;

    /**重试初始次数*/
    public static final int BEGIN_COUNT = 0;

    /**excel表头*/
    public static final String[] ORDER_RECORD_EXCEL_HEADER = {"交易时间","业务场景","付款方名称","商户订单号",
            "业务订单号","支付机构订单号","类型","支付方式","订单金额"};

    /**实施记录excel表字段*/
    public static final String[] ORDER_RECORD_EXCEL_FIELD = {"payTime","businessOrderType","payer","payNo","businessOrderNo",
            "channelTransactionNo","orderType","payMode","amount"};

    /**
     * 对账界面表头
     */
    public static final String[] PAY_CHECK_HEADER = {"交易流水号","业务场景(宜块钱)","账户类型(平台账户,佣金账户,手续费账户)",
            "账户名称","交易时间","费用类型(平台账户转入,平台账户转出)",
    "金额","余额","商户名称","对方账户","对方户名","业务单号","备注"};

    /**
     * 交易对账界面表头
     */
    public static final String[] TRADE_CHECK_HEADER = {"业务线","业务订单类型","商户号",
            "请求流水号","交易流水号","交易金额",
    "交易状态","交易类型","交易订单创建时间","交易订单完成时间","出账方账号","出账方户名","出账方银行简称",
    "入账方账号","入账方户名","入账方银行简称","入账方证件号","商户保留域","分账信息","分润信息",
    "交易备注","手续费","担保信息"};

    /**
     * 开户状态表头
     */
    public static final String[] OPEN_ACCOUNT_STATUS_HEADER = {"商户ID","商户名","省份","近两个月GMV","商业入驻时间","状态最后更新时间","状态","备注"};

    /**
     * 对账界面字段
     */
    public static final String[] PAY_CHECK_FILED = {"payNo","businessType","accountType","accountName","dealTime",
    "costType","amount","residual","merchantName","oppositeAccount","oppositeName","businessNo","remark"};

    /**
     * 交易对账界面字段
     */
    public static final String[] TRADE_CHECK_FILED = {"businessTypeName","businessOrderTypeName","merchantNo","clientSerialNo","orderNo"
            ,"amount","tradeStatus","tradeType","payTime"
            ,"successTime","outAccountNo","outAccountName","outBankCode"
            ,"inAccountNo","inAccountName","inBankCode","inCardNo"
            ,"extra","propateInfo","furunInfo","remarks"
            ,"feeAmount","guarantee"};
    /**
     * 开户状态字段
     */
    public static final String[] OPEN_ACCOUNT_STATUS_FILED = {"businessId","name","prvo","gmv","openAccountTime","lastUpdateTime","statusDesc","msg"};

    public static final String[] AUTO_CHECK_BILL_HEADER={"实际收款日期","商户号","渠道商户订单号","商品名称","类型","渠道订单金额",
    "渠道手续费","商户ID","商户名称","订单号","支付流水号","原支付流水号","支付方式","商品金额","运费金额","订单金额","店铺优惠","平台优惠",
    "实收金额","对账状态"};
    public static final String[] AUTO_CHECK_BILL_FILED={"payTime","mchId","channelOrderNo","goodsSubject","type",
    "channelOrderAmount","channelServiceCharge","businessUserId","businessUserName","businessNo","payNo","originPayNo",
    "payType","productAmount","freight","orderAmount","storeDiscount","platformDiscount","realAmount","status"};

    public static final String[] JD_CREDIT_REPAY_PLAN = {"借据号","订单号","退款单号","单据类型","支付单号","客户编码","客户名称","商户编码","商户名称","支付时间","订单实付金额","订单现金实付","购物金实付","退款金额","现金实退金额","购物金实退金额"};

    /**实施记录excel表字段*/
    public static final String[] JD_CREDIT_REPAY_PLAN_FIELD = {"loanNo","businessOrderNo","businessRefundNo","orderType","payNo","custCode","custName","sellerId","sellerName","payTime","payAmount","payCashAmount","virtualGoldAmount","refundPayAmount","refundPayCashAmount","refundVirtualGoldAmount"};


    public static final String[] XYD_SPECIAL_ACCOUNT = {"账户类型","交易账号","交易编码","交易日期","交易类型","订单支付单号","退款单支付单号","商城订单号","商城退款单号",
            "收支类型","交易金额","交易对手账户","交易对手名称","商户编码","商户名称","客户编码","客户名称"};

    /**小雨点专户查询*/
    public static final String[] XYD_SPECIAL_ACCOUNT_FIELD = {"accountType","tradeAccount","tradeCode","tradeDate","tradeType","orderPayNo","refundPayNo","orderNo","refundNo",
            "inOutType","tradeAmt","tradeRivalAccount","tradeRivalName","orgId","orgName", "merchantId","merchantName"};


    public static final String[] XYD_REPAY_PLAN = {"平台客户授信编号","借据号","订单号","支付单号","贷款金额","贷款利息","年利率","贷款期限","支付时间",
            "起息日","应还款日","实际还款日","是否结清","商户编码","商户名称","客户编码","客户名称","期数","该期实付本金","该期未付本金","该期实付利息","该期未付利息",
            "平台贴息金额","平台贴息天数","该期实付逾期费","该期未付逾期费","逾期天数","已还罚息","是否包含原路退"};

    /**小雨点还款计划*/
    public static final String[] XYD_REPAY_PLAN_FIELD = {"outerOrderNo","loanNo","orderNo","payNo","loanAmount","interest","creditRate","loanLimit","payTime",
            "loanTime","dueDate","dueDateActual","paidOff","orgId","orgName", "merchantId","merchantName","totalPlan","principalPaid", "principal","interestPaid","currInterest",
            "subsidyInterest", "subsidyDays","lateFeePaid","lateFee", "dayInDefault","repayPenalty","isOriginalRoute"};

    public static final String[] PINGAN_REPAMENT_PALN = {"商户名称","客户名称","平台订单号","订单支付时间","借据号","期次","提前还款次数","应还款日","实际还款日","还款状态标记","应还总金额","实还总金额","应还本金","实还本金","应还利息","应还利息平台贴息","实还利息","实还利息平台贴息","应还复利","实还复利","退款标识","订单实付金额"};

    /**实施记录excel表字段*/
    public static final String[] PINGAN_REPAMENT_PALN_FIELD = {"receiverName","payerName","businessPayNo","payDay","loanBalanceNo","curTerm","curNum","curRepayDate","actRepayDate","payoffflagStr","curRepayAmount","actRepayAmount","curPrincipalAmount","actPrincipalAmount","curInterestAmount","curSubsidyInterestAmount","actInterestAmount","actSubsidyInterestAmount","curCompoundInterestAmount","actCompoundInterestAmount","refundStr","tradeAmount"};

    /** 京东账单_0026表字段 **/
    public static final String JD_BILL_HEAD_0026 = "商户号,商户编码,商户名称,客户名称,药帮忙订单号,结算单号,平台商户订单号,分账收款账号,分账商户订单号,分账业务订单号,金额,创建时间,结算完成时间,手续费,分账备注,原平台商户订单号,原分账商户订单号,支付工具,订单类型,卡类型,发卡行,付款单号,资金类型,费用编号,费用收支账户";
    /** 京东账单_0027表字段 **/
    public static final String JD_BILL_HEAD_0027 = "商户号,商户编码,商户名称,客户名称,药帮忙订单号,结算单号,扣款单号,在途商户号,平台商户订单号,平台业务订单号,订单金额,结算完成时间,手续费,原平台商户订单号,支付工具,订单类型,卡类型,发卡行";
    /** 京东账单_0028表字段 **/
    public static final String JD_BILL_HEAD_0028 = "商户号,商户编码,商户名称,客户名称,药帮忙订单号,订单号,银行订单号,订单金额,业务类型,订单类型,订单状态,已退款金额,清算状态,交易时间,处理时间,原订单号,手续费,账户名称,银行名称,业务订单号,交易号,平台商户订单号,平台商户号,平台商户名称,平台在途户,子商户号,佣金信息,营销信息,佣金总金额,备注";


    /**
     * specific param withdraw
     */
    public static final String specificInAccountId = "8abc";
    public static final String specificOutAccountId = "4294000000000003";
    public static final String specificUserId = "4294000000000003";
    public static final String specificPayerAccountNo = "4294000000000003";
    public static final String specificPayerName = "北京药帮忙科技有限公司";
    public static final String specificPayeeAccountNo = "15047650400053";
    public static final String specificPayeeName = "北京药帮忙科技有限公司";

}
